package knowlwdge_graph.knowledge_etl.yago_etl;


import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * Created by julianzliu on 4/17/2017.
 */
public class SchemaDefinition {



    public static class YAGO_NODE_TYPE{
        public static String TYPE_LABEL = "LABEL";
        public static String TYPE_CONCEPT = "CONCEPT";
        public static String TYPE_OTHER = "OTHER";
        public static String TYPE_RELATION = "RELATION";
    }

    public static class YAGO_EDGE_TYPE{
        public static String TYPE_LABEL = "LABEL";
    }


    public static class COMMON {
        public static String PROPERTY_YAGO_ID = "yago_id";
        public static String PROPERTY_YAGO_LABEL = "yago_label";
        public static String PROPERTY_YAGO_TYPE = "yago_type";
    }

    public static class YAGO_LABEL_CLASS extends COMMON{
        public static String CLASS_NAME = "YAGO_LABEL_CLASS";
        //public static String PROPERTY_YAGO_LABEL = COMMON.PROPERTY_YAGO_LABEL;
        //public static String PROPERTY_YAGO_ID = COMMON.PROPERTY_YAGO_ID;
    }

    public static class YAGO_LABEL_EDGE  extends COMMON {
        public static String EDGE_NAME = "YAGO_LABEL_EDGE";
        //public static String PROPERTY_YAGO_LABEL = COMMON.PROPERTY_YAGO_LABEL;
        //public static String PROPERTY_YAGO_ID = COMMON.PROPERTY_YAGO_ID;
        public static String[] label_array = {"rdfs:label", "skos:prefLabel", "<isPreferredMeaningOf>", "<hasGivenName>", "<hasFamilyName>", "<hasGloss>", "<redirectedFrom>"};
        public static Set<String> label_set = new HashSet<String>(Arrays.asList(label_array));
    }


    public static class YAGO_CONCEPT_CLASS  extends COMMON{
        public static String CLASS_NAME = "YAGO_CONCEPT_CLASS";
        //public static String PROPERTY_YAGO_LABEL = COMMON.PROPERTY_YAGO_LABEL;
        //public static String PROPERTY_YAGO_ID = COMMON.PROPERTY_YAGO_ID;
    }

    public static class YAGO_CONCEPT_EDGE extends COMMON {
        public static String EDGE_NAME = "YAGO_CONCEPT_EDGE";
        //public static String PROPERTY_YAGO_LABEL = COMMON.PROPERTY_YAGO_LABEL;
        //public static String PROPERTY_YAGO_ID = COMMON.PROPERTY_YAGO_ID;
        private static String[] label_array = {"rdf:type"}; //, "rdfs:subClassOf"};
        public static Set<String> label_set = new HashSet<String>(Arrays.asList(label_array));
    }

    public static class YAGO_OTHER_CLASS  extends COMMON{
        public static String CLASS_NAME = "YAGO_OTHER_CLASS";
        //public static String PROPERTY_YAGO_LABEL = COMMON.PROPERTY_YAGO_LABEL;
        //public static String PROPERTY_YAGO_ID = COMMON.PROPERTY_YAGO_ID;
    }

    public static class YAGO_OTHER_EDGE extends COMMON{
        public static String EDGE_NAME = "YAGO_OTHER_EDGE";
        //public static String PROPERTY_YAGO_LABEL = COMMON.PROPERTY_YAGO_LABEL;
        //public static String PROPERTY_YAGO_ID = COMMON.PROPERTY_YAGO_ID;
    }




}
